//package com.cr.quartz.task;
//
//import com.alibaba.fastjson2.JSON;
//import com.cr.common.utils.StringUtils;
//import com.cr.common.utils.http.HttpUtils;
//import com.cr.quartz.config.RemoteConfig;
//import com.cr.quartz.domain.vo.RemotePageInfo;
//import com.cr.quartz.domain.vo.Res;
//import com.cr.sync.domain.TbSyncSuperviseViolationLawRegulation;
//import com.cr.sync.service.ITbSyncSuperviseViolationLawRegulationService;
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//import org.springframework.stereotype.Component;
//
//import javax.annotation.Resource;
//import java.util.*;
//
///**
// * 远程同步违法违规案件数据任务
// *
// */
//@Component("remoteSyncSuperviseViolationLawRegulationTask")
//public class RemoteSyncSuperviseViolationLawRegulationTask {
//    private static final Logger log = LoggerFactory.getLogger(RemoteSyncSuperviseViolationLawRegulationTask.class);
//
//    private static final String REMOTE_ADDR = "WG_IP/basesupport-service/tripartiteCity/querySuperviseViolationLawRegulation";
//
//    @Resource
//    private ITbSyncSuperviseViolationLawRegulationService tbSyncSuperviseViolationLawRegulationService;
//
//    public void doSync()
//    {
//        log.info("------------------ 开始执行违法违规案件数据同步 ----------------------------");
//        // 统计开始时间
//        long stime = System.currentTimeMillis();
//
//        // 数据
//        List<TbSyncSuperviseViolationLawRegulation> infos = Collections.emptyList();
//
//        // 参数
//        Map<String, Object> params = new HashMap<>();
//        params.put("userAccount", RemoteConfig.USER_NAME);
//        params.put("userPassword", RemoteConfig.PASSWORD);
//        params.put("pageNumber", 1);
//        params.put("pageSize", 20);
//
//        // 首次请求
//        String res = HttpUtils.sendPost(RemoteConfig.REMOTE_URL + REMOTE_ADDR, JSON.toJSONString(params), RemoteConfig.CONTENT_TYPE);
//        RemotePageInfo<TbSyncSuperviseViolationLawRegulation> pageInfo = getPageInfo(res);
//        if(pageInfo != null) {
//            infos = getBodyInfos(pageInfo);
//
//            // 获取总页数
//            Integer pages = pageInfo.getPages();
//            if(pages != null && pages > 1) {
//                for (int i = 2; i <= pages; i++) {
//                    params.put("pageNumber", i);
//                    res = HttpUtils.sendPost(RemoteConfig.REMOTE_URL + REMOTE_ADDR, JSON.toJSONString(params), RemoteConfig.CONTENT_TYPE);
//                    infos.addAll(getBodyInfos(getPageInfo(res)));
//                }
//            }
//        }
//
//        // 批量添加信息
//        tbSyncSuperviseViolationLawRegulationService.insertBatch(infos);
//
//        // 统计结束时间
//        long etime = System.currentTimeMillis();
//        log.info("------------------ 完成违法违规案件数据同步（耗时："+(etime-stime)+"毫秒） ----------------------------");
//    }
//
//    /**
//     * 获取分页信息
//     * @param res 远程接口返回信息
//     */
//    private RemotePageInfo<TbSyncSuperviseViolationLawRegulation> getPageInfo(String res)
//    {
//        if(StringUtils.isNotBlank(res)) {
//            Res r = JSON.to(Res.class, res);
//            if (r.isFlag()) {
//                return JSON.to(RemotePageInfo.class, r.getData());
//            }
//        }
//        return null;
//    }
//
//    /**
//     * 获取数据
//     * @param pageInfo 分页信息
//     */
//    private List<TbSyncSuperviseViolationLawRegulation> getBodyInfos(RemotePageInfo pageInfo)
//    {
//        List<TbSyncSuperviseViolationLawRegulation> infos = Collections.emptyList();
//
//        if(pageInfo != null) {
//            List data = pageInfo.getList();
//            // 保存第一页的数据
//            if(data != null && !data.isEmpty()) {
//                infos = new ArrayList<>();
//                for (Object datum : data) {
//                    TbSyncSuperviseViolationLawRegulation info = JSON.to(TbSyncSuperviseViolationLawRegulation.class, datum);
//                    infos.add(info);
//                }
//            }
//        }
//
//        return infos;
//    }
//}
